# ---- Variables ----

# We use variables separate from what CTest uses, because those have customization issues
set(COVERAGE_TRACE_COMMAND
    lcov -c -q -o "${PROJECT_BINARY_DIR}/coverage.info" -d "${PROJECT_BINARY_DIR}" --include
    "${PROJECT_SOURCE_DIR}/*"
    CACHE STRING "; separated command to generate a trace for the 'coverage' target"
)

set(COVERAGE_HTML_COMMAND
    genhtml --legend -f -q "${PROJECT_BINARY_DIR}/coverage.info" -p "${PROJECT_SOURCE_DIR}" -o
    "${PROJECT_BINARY_DIR}/coverage_html"
    CACHE STRING "; separated command to generate an HTML report for the 'coverage' target"
)

# ---- Coverage target ----

add_custom_target(
  coverage
  COMMAND ${COVERAGE_TRACE_COMMAND}
  COMMAND ${COVERAGE_HTML_COMMAND}
  COMMENT "Generating coverage report"
  VERBATIM
)
